[MT Trader] Backtest template w/ Supertrend Strategy---EN: In this strategy template you will find some functions already pre-programmed to be used in your strategies to speed up the programming process, among them we can highlight the default stop loss and take profit functions, which will help to set easily and quickly, defining the price range in which we want to prevent large losses or protect our profits from unexpected market movements.
🔴 Stop Loss: Among the functions of the stop loss are the 4 most known, first we have the fixed percentage range (%) and price ($), when the price reaches this fixed price will limit the losses of the operation avoiding larger losses, then we have the average true range (ATR), a moving average of true range and X period that can give us good reference points to place our stop loss, finally the last point higher or lower is the most used by traders to place their stop loss.
In addition, the price range between the entry and stop loss can be converted into a trailing stop loss.
🟢 Take Profit: We have 3 options for take profit, just like stop loss, the fixed range of percentage(%) and price($), are available, in addition to this we have the 1:# ratio option, which multiplies by X number the range between the entry and stop loss to use it as take profit, perfect for strategies that use ATR or last high/low point for their strategy.
📈 Heikin Ashi Entrys: The heikin ashi entries are trades that are calculated based on heikin ashi candles but their price is executed in Japanese candles, thus avoiding the false results that occur in heikin candlestick charts, making that in certain cases better results are obtained in the strategies that are executed with this option compared to Japanese candlesticks.
📊 Dashboard: A more visual and organized way to see the results and data needed for our strategy.
Feel free to use this template to program your own strategies, if you find bugs or want to request a new feature let me know in the comments or through my telegram @hvert_mt
__________________________________________________________________________________________________________________________________________________
---ES: En esta plantilla de estrategia podrás encontrar algunas funciones ya pre-programadas para ser usadas en tus estrategias para acelerar procesos de programación, entre ellas podemos destacar las funciones por defecto de stop loss y take profit, que ayudaran a establecer de manera fácil y rápida, definiendo los rango de precio en los que queremos prevenirnos de perdidas grandes o proteger nuestras ganancias de movimientos inesperados del mercado.
🔴 Stop Loss: Entre las funciones del stop loss están las 4 más conocidas, en primer lugar tenemos el rango de porcentaje fijo(%) y el precio($), cuando el precio alcance este precio fijo se limitaran las perdidas de la operación evitando perdidas mas grandes, después tenemos el promedio de rango verdadero(ATR), una media móvil del rango verdadero y X periodo que nos puede dar buenos puntos de referencia para colocar nuestro stop loss, por ultimo el ultimo punto mas alto o mas bajo es de los mas usados por los traders para colocar su stop loss.
Adicional a esto, el rango de precio entre la entrada y el stop loss se puede convertir en un trailing stop loss.
🟢 Take Profit: Tenemos 3 opciones para take profit, al igual que en el stop loss, el rango fijo de porcentaje(%) y precio($) se encuentran disponibles, adicional a esto tenemos la opción de ratio 1:#, que multiplica por X numero el rango entre la entrada y el stop loss para usarlo como take profit, perfecto para estrategias que usen ATR o ultimo punto alto/bajo.
📈 Entradas Heikin Ashi: Las entradas Heikin Ashi son trades que son calculados en base a las velas Aeikin Ashi pero su precio esta ejecutado a velas japonesas, evitando así los falsos resultados que se producen en graficas de velas Heikin, esto haciendo que en ciertos casos se obtengan mejores resultados en las estrategias que son ejecutadas con esta opción en comparación con las velas japonesas.
📊 Panel de Control: Una manera mas visual y organizada de ver los resultados y datos necesarios de nuestra estrategia.
Siéntete libre de usar esta plantilla para programar tus propias estrategias, si encuentras errores o quieres solicitar una nueva función házmelo saber en los comentarios o a través de mi Telegram: @hvert_mt
Pesquisar nos scripts por "take profit"
T&M/E Wave V2Trend and Momentum With Exception Wave Indicator and Strategy:
This strategy is hand made and I have spent days and many hours making it. The strategy is meant to determine the power between buyers and sellers, match the current power with a historic trend (through a moving average statistical equation), and finally volatility (measured with a mix between standard deviation from Bollinger Bands and HPV). Below will be a list of how to determine the inputs for the indicator
**For reference, all numbers, and settings displayed on the input screen are only what I HAVE FOUND to be profitable for my own strategy, Yours will differ. This is not financial advice and I am not a financial advisor. Please do your due diligence and own research before considering taking entries based on this strategy and indicator. I am not advertising investing, trading, or skills untaught, this is simply to help incorporate into your own strategy and improve your trading journey!**
INPUTS:
EV: This is an integer value set to default at 55. This value is equated to the lead value, volatility measurement, and standard deviation between averages
EV 2: This integer is used as the base value and is meant to always be GREATER THEN EV, the default is set at 163. There should be at least a 90+ integer difference between EVs for data accuracy.
EV TYPE & EV TYPE 2: This option only affects the output for the moving average histograms. (and data inserted for strategy)
Volatility Smoothing: This is the smoothness of the custom-made volatility oscillator. I have this default at 1 to show time-worthy-term (3.9%+) moves or significant trends to correspond with the standard deviation declination between EVMA and EVMA2.
Directional Length: This is the amount of data observed per candle in the bull versus bear indicator.
Take Profit: Pre-set takes profit level that is set to 4 but can be adjusted for user experience.
Style:
Base Length: Columns equated using a custom-made statistical equation derived from EV TYPE 2+EV2 to determine a range of differential in historic averages to a micro-scale.
Lead Length: Columns equated using a custom-made statistical equation derived from EV TYPE+EV to determine a range of differential in historic averages to a micro-scale.
Weighted EMA Differential: Equation expressing the differences between exponential and simple averages derived from EV+EV Type 2. Default is displaying none, but optional for use if found helpful.
Volatility: Represents volatility from multiple data sets spanning from Bollinger bands to HPV and translated through smoothing.
Bull Strength: The strength of Bulls in the current trend is derived from a DMI+RSI+MACD equation to represent where the trend lies.
Bear Strength: The strength of Bears in the current trend is derived from a DMI+RSI+MACD equation to represent where the trend lies.
CHEAT CODE'S NOTES:
Do not use this indicator on high leverage. I have personally used this indicator for a week and faced a max of 8% drawdown, albeit painful I was on low leverage and still closed on my take profit level.
85% is not 100% do not overtrade using this indicator's entry conditions if you have made 4 consecutive profitable trades.
Mess around with the input values and let me know if you find an even BETTER hit rate, 30+ entries and a good drawdown!!
V2 UPGRADES:
*Increased Opacity on Bull Bear Columns
*Removed the Stop Loss Input option
*Decreased EV2 to a default of 143 for accuracy
*Added additional disclaimers in the description
* Removed Bull/Bear offset values for accuracy
-Cheat Code
BYBIT:BTCUSDT
Strategy - Backtest Uber Kuskus Starlight [UTS]Backtest of Uber Kuskus Starlight
Backtest with focus win/loss profitability.
Formula: profitability = win / (win+loss)
Default equity 100k USD
Default 2% Risk per trade
Default currency USD
Define backtest interval precisely by month, year, day
LONG and SHORT positions
Visualize SL and TP on chart
ATR (len: 14, smooth: SMA)
ATR based Stop-Loss, if hit trade will be closed and considered as loss
ATR based Take-Profit, if hit trade will be closed and considered as win
On TP or SL hit the trade is closed and marked as win/loss
STD-Filterd, R-squared Adaptive T3 w/ Dynamic Zones BT [Loxx]STD-Filterd, R-squared Adaptive T3 w/ Dynamic Zones BT is the backtest strategy for "STD-Filterd, R-squared Adaptive T3 w/ Dynamic Zones " seen below:
Included:
This backtest uses a special implementation of ATR and ATR smoothing called "True Range Double" which is a range calculation that accounts for volatility skew.
You can set the backtest to 1-2 take profits with stop-loss
Signals can't exit on the same candle as the entry, this is coded in a way for 1-candle delay post entry
This should be coupled with the INDICATOR version linked above for the alerts and signals. Strategies won't paint the signal "L" or "S" until the entry actually happens, but indicators allow this, which is repainting on current candle, but this is an FYI if you want to get serious with Pinescript algorithmic botting
You can restrict the backtest by dates
It is advised that you understand what Heikin-Ashi candles do to strategies, the default settings for this backtest is NON Heikin-Ashi candles but you have the ability to change that in the source selection
This is a mathematically heavy, heavy-lifting strategy with multi-layered adaptivity. Make sure you do your own research so you understand what is happening here. This can be used as its own trading system without any other oscillators, moving average baselines, or volatility/momentum confirmation indicators.
What is the T3 moving average?
Better Moving Averages Tim Tillson
November 1, 1998
Tim Tillson is a software project manager at Hewlett-Packard, with degrees in Mathematics and Computer Science. He has privately traded options and equities for 15 years.
Introduction
"Digital filtering includes the process of smoothing, predicting, differentiating, integrating, separation of signals, and removal of noise from a signal. Thus many people who do such things are actually using digital filters without realizing that they are; being unacquainted with the theory, they neither understand what they have done nor the possibilities of what they might have done."
This quote from R. W. Hamming applies to the vast majority of indicators in technical analysis . Moving averages, be they simple, weighted, or exponential, are lowpass filters; low frequency components in the signal pass through with little attenuation, while high frequencies are severely reduced.
"Oscillator" type indicators (such as MACD , Momentum, Relative Strength Index ) are another type of digital filter called a differentiator.
Tushar Chande has observed that many popular oscillators are highly correlated, which is sensible because they are trying to measure the rate of change of the underlying time series, i.e., are trying to be the first and second derivatives we all learned about in Calculus.
We use moving averages (lowpass filters) in technical analysis to remove the random noise from a time series, to discern the underlying trend or to determine prices at which we will take action. A perfect moving average would have two attributes:
It would be smooth, not sensitive to random noise in the underlying time series. Another way of saying this is that its derivative would not spuriously alternate between positive and negative values.
It would not lag behind the time series it is computed from. Lag, of course, produces late buy or sell signals that kill profits.
The only way one can compute a perfect moving average is to have knowledge of the future, and if we had that, we would buy one lottery ticket a week rather than trade!
Having said this, we can still improve on the conventional simple, weighted, or exponential moving averages. Here's how:
Two Interesting Moving Averages
We will examine two benchmark moving averages based on Linear Regression analysis.
In both cases, a Linear Regression line of length n is fitted to price data.
I call the first moving average ILRS, which stands for Integral of Linear Regression Slope. One simply integrates the slope of a linear regression line as it is successively fitted in a moving window of length n across the data, with the constant of integration being a simple moving average of the first n points. Put another way, the derivative of ILRS is the linear regression slope. Note that ILRS is not the same as a SMA ( simple moving average ) of length n, which is actually the midpoint of the linear regression line as it moves across the data.
We can measure the lag of moving averages with respect to a linear trend by computing how they behave when the input is a line with unit slope. Both SMA (n) and ILRS(n) have lag of n/2, but ILRS is much smoother than SMA .
Our second benchmark moving average is well known, called EPMA or End Point Moving Average. It is the endpoint of the linear regression line of length n as it is fitted across the data. EPMA hugs the data more closely than a simple or exponential moving average of the same length. The price we pay for this is that it is much noisier (less smooth) than ILRS, and it also has the annoying property that it overshoots the data when linear trends are present.
However, EPMA has a lag of 0 with respect to linear input! This makes sense because a linear regression line will fit linear input perfectly, and the endpoint of the LR line will be on the input line.
These two moving averages frame the tradeoffs that we are facing. On one extreme we have ILRS, which is very smooth and has considerable phase lag. EPMA has 0 phase lag, but is too noisy and overshoots. We would like to construct a better moving average which is as smooth as ILRS, but runs closer to where EPMA lies, without the overshoot.
A easy way to attempt this is to split the difference, i.e. use (ILRS(n)+EPMA(n))/2. This will give us a moving average (call it IE /2) which runs in between the two, has phase lag of n/4 but still inherits considerable noise from EPMA. IE /2 is inspirational, however. Can we build something that is comparable, but smoother? Figure 1 shows ILRS, EPMA, and IE /2.
Filter Techniques
Any thoughtful student of filter theory (or resolute experimenter) will have noticed that you can improve the smoothness of a filter by running it through itself multiple times, at the cost of increasing phase lag.
There is a complementary technique (called twicing by J.W. Tukey) which can be used to improve phase lag. If L stands for the operation of running data through a low pass filter, then twicing can be described by:
L' = L(time series) + L(time series - L(time series))
That is, we add a moving average of the difference between the input and the moving average to the moving average. This is algebraically equivalent to:
2L-L(L)
This is the Double Exponential Moving Average or DEMA , popularized by Patrick Mulloy in TASAC (January/February 1994).
In our taxonomy, DEMA has some phase lag (although it exponentially approaches 0) and is somewhat noisy, comparable to IE /2 indicator.
We will use these two techniques to construct our better moving average, after we explore the first one a little more closely.
Fixing Overshoot
An n-day EMA has smoothing constant alpha=2/(n+1) and a lag of (n-1)/2.
Thus EMA (3) has lag 1, and EMA (11) has lag 5. Figure 2 shows that, if I am willing to incur 5 days of lag, I get a smoother moving average if I run EMA (3) through itself 5 times than if I just take EMA (11) once.
This suggests that if EPMA and DEMA have 0 or low lag, why not run fast versions (eg DEMA (3)) through themselves many times to achieve a smooth result? The problem is that multiple runs though these filters increase their tendency to overshoot the data, giving an unusable result. This is because the amplitude response of DEMA and EPMA is greater than 1 at certain frequencies, giving a gain of much greater than 1 at these frequencies when run though themselves multiple times. Figure 3 shows DEMA (7) and EPMA(7) run through themselves 3 times. DEMA^3 has serious overshoot, and EPMA^3 is terrible.
The solution to the overshoot problem is to recall what we are doing with twicing:
DEMA (n) = EMA (n) + EMA (time series - EMA (n))
The second term is adding, in effect, a smooth version of the derivative to the EMA to achieve DEMA . The derivative term determines how hot the moving average's response to linear trends will be. We need to simply turn down the volume to achieve our basic building block:
EMA (n) + EMA (time series - EMA (n))*.7;
This is algebraically the same as:
EMA (n)*1.7-EMA( EMA (n))*.7;
I have chosen .7 as my volume factor, but the general formula (which I call "Generalized Dema") is:
GD (n,v) = EMA (n)*(1+v)-EMA( EMA (n))*v,
Where v ranges between 0 and 1. When v=0, GD is just an EMA , and when v=1, GD is DEMA . In between, GD is a cooler DEMA . By using a value for v less than 1 (I like .7), we cure the multiple DEMA overshoot problem, at the cost of accepting some additional phase delay. Now we can run GD through itself multiple times to define a new, smoother moving average T3 that does not overshoot the data:
T3(n) = GD ( GD ( GD (n)))
In filter theory parlance, T3 is a six-pole non-linear Kalman filter. Kalman filters are ones which use the error (in this case (time series - EMA (n)) to correct themselves. In Technical Analysis , these are called Adaptive Moving Averages; they track the time series more aggressively when it is making large moves.
What is R-squared Adaptive?
One tool available in forecasting the trendiness of the breakout is the coefficient of determination ( R-squared ), a statistical measurement.
The R-squared indicates linear strength between the security's price (the Y - axis) and time (the X - axis). The R-squared is the percentage of squared error that the linear regression can eliminate if it were used as the predictor instead of the mean value. If the R-squared were 0.99, then the linear regression would eliminate 99% of the error for prediction versus predicting closing prices using a simple moving average .
R-squared is used here to derive a T3 factor used to modify price before passing price through a six-pole non-linear Kalman filter.
What are Dynamic Zones?
As explained in "Stocks & Commodities V15:7 (306-310): Dynamic Zones by Leo Zamansky, Ph .D., and David Stendahl"
Most indicators use a fixed zone for buy and sell signals. Here’ s a concept based on zones that are responsive to past levels of the indicator.
One approach to active investing employs the use of oscillators to exploit tradable market trends. This investing style follows a very simple form of logic: Enter the market only when an oscillator has moved far above or below traditional trading lev- els. However, these oscillator- driven systems lack the ability to evolve with the market because they use fixed buy and sell zones. Traders typically use one set of buy and sell zones for a bull market and substantially different zones for a bear market. And therein lies the problem.
Once traders begin introducing their market opinions into trading equations, by changing the zones, they negate the system’s mechanical nature. The objective is to have a system automatically define its own buy and sell zones and thereby profitably trade in any market — bull or bear. Dynamic zones offer a solution to the problem of fixed buy and sell zones for any oscillator-driven system.
An indicator’s extreme levels can be quantified using statistical methods. These extreme levels are calculated for a certain period and serve as the buy and sell zones for a trading system. The repetition of this statistical process for every value of the indicator creates values that become the dynamic zones. The zones are calculated in such a way that the probability of the indicator value rising above, or falling below, the dynamic zones is equal to a given probability input set by the trader.
To better understand dynamic zones, let's first describe them mathematically and then explain their use. The dynamic zones definition:
Find V such that:
For dynamic zone buy: P{X <= V}=P1
For dynamic zone sell: P{X >= V}=P2
where P1 and P2 are the probabilities set by the trader, X is the value of the indicator for the selected period and V represents the value of the dynamic zone.
The probability input P1 and P2 can be adjusted by the trader to encompass as much or as little data as the trader would like. The smaller the probability, the fewer data values above and below the dynamic zones. This translates into a wider range between the buy and sell zones. If a 10% probability is used for P1 and P2, only those data values that make up the top 10% and bottom 10% for an indicator are used in the construction of the zones. Of the values, 80% will fall between the two extreme levels. Because dynamic zone levels are penetrated so infrequently, when this happens, traders know that the market has truly moved into overbought or oversold territory.
Calculating the Dynamic Zones
The algorithm for the dynamic zones is a series of steps. First, decide the value of the lookback period t. Next, decide the value of the probability Pbuy for buy zone and value of the probability Psell for the sell zone.
For i=1, to the last lookback period, build the distribution f(x) of the price during the lookback period i. Then find the value Vi1 such that the probability of the price less than or equal to Vi1 during the lookback period i is equal to Pbuy. Find the value Vi2 such that the probability of the price greater or equal to Vi2 during the lookback period i is equal to Psell. The sequence of Vi1 for all periods gives the buy zone. The sequence of Vi2 for all periods gives the sell zone.
In the algorithm description, we have: Build the distribution f(x) of the price during the lookback period i. The distribution here is empirical namely, how many times a given value of x appeared during the lookback period. The problem is to find such x that the probability of a price being greater or equal to x will be equal to a probability selected by the user. Probability is the area under the distribution curve. The task is to find such value of x that the area under the distribution curve to the right of x will be equal to the probability selected by the user. That x is the dynamic zone.
Included:
Bar coloring
Signals
Alerts
Loxx's Expanded Source Types
MZ HTF HFT ROCit Bot - Non Repainting Scalper v1.2 ADX RSI MOM This is a new iteration based on my Momentum trading bot.
This is an original script meant to be a high frequency trader that works on higher time frame calculations.
I came up with the idea that using calculus I can figure out the actual rate of change and momentum with different calculations than the momentum indicator that is provided by trading view. Once momentum is shifted on a small time frame, it will provide an entry signal. The script is meant to be used on an algorithmic trading system for scalping purposes. It should be run on a one minute time frame. Unfortunately due to various plotting constraints in Pinescript, you cannot plot the rate of change and momentum and price in the same pane. To counter this, I have a showdata toggle to give you values of the indicators at each entry.
This version has two main entry settings toggled with a checkbox. There is the ROC (rate of change) version and the MOM (momentum) entry signals.
The rate of change version is meant to take a look at your moving average and try to trigger when it hits a certain rate of change point. This can be helpful if you rather play it safer. I have noticed that you can get slightly better entry points but also does not give you as many entries. The momentum algorithm will give you faster entry points and might work best with a slight offset (use your back test to help you figure it out).
I have started to add tooltips to help you along. If you have suggestions please let me know.
How does it work?
Let's just assume that you are looking at a one minute chart. I recommend using the one minute for bots because it will give you the fastest execution for entries. Pinescript has an issue where the signal is not usually sent until the end of the bar/beginning of next bar. If the signal was triggered at the beginning of a 15 minute bar, it might not actually send the signal until the following 15 minute bar. If you are trading on small time frames, this can make all the difference. If you are using an algo platform that trailing stops, stop losse, take profits, etc. I would recommend you use that platform to close your trade. The close trade message will work, but pinescript does not know the exact entry price you received, so if you are trying to collect small profits, it is best that intermediary platform does that calculation for you. If you are dealing with larger moves, instead of small 1-3% scalps, you are probably fine to use the close message setting from pinescript.
Ok, so to take an example. I like to use the 3L and 3S tokens on Kucoin. This gives you a lot of volatility to work with compared to other tokens and coins. However, it can also meas that you are likely taking a higher risk. However, there are some things that can help with that (more on that later).
So we have a token we want to run, and have it on the 1m chart.
First, be sure that all of your filters are OFF when you start playing with the back test. This allows you to see how to best optimize the bot.
Use the show data to show you additional data when you are backtesting. This can allow you to try to filter out results or market conditions that do not work. I typically work with the RSI and use the 30 minute and 15 minute RSIs. I make sure that it is trading within a certain band - about 40-75. You can try the inverse and only buy during really low RSI's as well.
www.dropbox.com
Find the source of your data with the variant drop down. You can use any time frame, open, close. high, low, olc4. Open is pretty much guaranteed to not have any repainting issues - although all the other calcs use a custom isbarconfirmed security repaint calculation. I have been finding that Open and SMA work well, but feel free to explore. If you use a source like open, close, high, low, etc - the interval will not change anything further. If you use a variant such as an sma, you should try to find an interval that works well for that token. For instance, try an sma of 8-11 minutes and see which gives you the best backtest result without changing anything else. Offset ALMA/LSMA parameters are only used for those specific variants. These specific parameters will also affect the ALMA and LSMA if you use that variant in the trend filter. In other words, you can skip these if you are not using those types of moving averages.
www.dropbox.com
Configure the ROC and MOM intervals. If you are using a source such as open, close, etc- this is where you set the interval for your change. So consider using OHLC4 or a interval of 5 thru 15 and see what works best. The Momentum inverval usually works best in the 2-5 bars. There is a custom calculation I added in to try to filter out false entries as momentum is waning. This calculation works best in 2-5 bar interval.
Configure the trigger point and offset. If you are using rate of change, the best settings will likely be between -1 to 0.5. If you are using momentum, you will likely want -20 to 10. This is where you will notice the entries will shift a bit. Try to find a balance between your backtest settings and actually finding what you thin will be the best entries based on a slight delay from trading view, to algo, to your trading platform. This can likely be a minute (maybe even) or so- so be sure to not get too caught up between the backtest results and be sure to finesse the entries to actually fit nicely - maybe a bar earlier than you would likely think. If your entries are coming in too early, you can use the offset to delay your entry by a few bars. This is both science and an art form- don't get too caught up on the back test results as that is based on having all the data tha already transpired, it's not based on how it will actually perform during deployment.
Take profit and stop loss. This should be self explanatory. This script can toggle between static take profit and a trailing profit. For scalping, you will likely want to limit it below 2% to get a good win ratio. Stop loss should be at least 5-6% for these types of 3L/3S tokens to give the strategy some room to move (if the token goes down 2% before it shoots back up, the price will go down 6%). This does not yield the best R/R ratio from a traditional trader perspective, but the statistical probabilities are in your favor for these events will happen. If you have better ideas for how to set this all up, feel free to contribute your ideas in the comments as we can all learn from each other. You can definitely set a much tighter stop loss with a larger take profit to get a lower win rate but in turn might get much better returns. It's all up to you.
FILTERS www.dropbox.com
These filters require you to know a bit about each indicator and how you want to use them. I will only go over the general idea.
Variant Filter - this is especially useful if you want to trade above a moving average. Say for instance you only want to take trades when we are over the 100 Day moving average. Or above a 30 minute, 30 bar EMA, etc. Although originally ported over from my other scripts, this is not a filter that I use often in conjunction with this script.
RSI - perhaps you want to buy when we are below the 30 line on the 30 minute RSI, or we want only want to have the strategy work when we are above the 50 RSI, this can all be configured here. I typically like to try a few different rationales here.
Now with brand NEW ADX filter - this is a brand new idea that seems to work rather well. Based on your ADX settings you can also turn on the "only uptrend" which will try to calculate if you are in an uptrend based on your ADX config. Please keep in mind that uptrend is based relatively on the ADX settings.
- There is a sprinkle of RSI magic in the entry signal to make sure that rsi is not declining in the calculation, so this can affect how many entries you get.
Some other tips:
Forward test.
Set up your algo bot on a one minute interval.
Set up take profit and stop loss on your algo trading platform.
Don't use the exact settings as your backtest, maybe try a slightly more conservative approach from the algo trading platform to make sure you are within range of triggering your events with a slight delay from signal to execution. If you have a 1.6% take profit, perhaps try 1.5% on your platform first.
By using these scripts you agree that you are trading at your own risk. I make no guarantees of returns or results. I just provide tools to help you trade better. However, I hope this ROCit will take you to the moon. And if it does, be sure to give me a shout as well as some tips of your own.
Send me a message with any questions or suggestions.
RSI+PA+PrTPHi everybody,
This strategy is a RSI, Price Averaging, Pyramiding Strategy based on the earlier RSI+PA+DCA strategy. See below.
For this slightly different strategy I left the DCA option out and instead focused on the Take Profit calculation. In the previous strategy the Take Profit was directly connected to the Average Price level with a specified take profit %. When the price reached the Take Profit all positions where exited. The strategy opened multiple position based on the PA price levels. The separate positions can close when they reach separately specified Take Profit Limit. Each time the prices crosses the PA layer again the position can be re-opened. This causes the average price to drop each time a separate position is opened and closed.
I thought it was an interesting way to minimize losses and in general it works fine. Only when the market goes bearish it can cause significant losses
For the lack of a better word, I dubbed it Progressive Take Profit. The PrTP works different and is less risky. It doesn't directly follow the average price development and is calculated for a part based on the estimated profits of the separate closed positions. Every time a separate position is closed, the profit of that position is deducted of the Take Profit Limit. This causes the Take Profit Limit to drop les drastically then the average price and the whole position will only be closed when the separately opened and closed positions made up for the biggest losses.
There are still some aspects in the puzzle that are not fully worked out yet and I am still working on it, but I wanted to share this idea already and maybe you have some thoughts about it.
The next step is to re-implement a better worked out DCA function.
To be continued.
iCryptoScalperHi everyone!
In this post I would like to present my personal indicator for short-term strategies on cryptocurrencies called iCryptoScalper , but let me first introduce myself:
I am a theoretical physicist with a deep passion for trading and mathematical modelling of the financial markets.
I started trading cryptocurrencies more than 4 years ago and, throughout this period, I got more and more involved in trying to describe the mechanisms governing
the price action at lower timeframes like 1, 5 and 15 minutes.
As a beginner, I started with the usual "buy and hold" strategy, the safest but also boring option. Afterthat, I tried to get more involved on speed trading
and scalping and, as it happens to all the beginners, I went through many mistakes.
At the beginning, trying to find the best scalping strategy, was a very difficult task and I barely managed to perform well, mostly because every trade were overwhelmed
by my emotional approach and the fear of missing the right entry point and/or exit point. However, thanks to these difficulties, I understood that I needed
an algorithmic procedure to improve my performances and overtake the emotional approach, with a more technical approach: a mathematical guide that precisely tells me how to behave in the best way possible to be profitable.
To achieve this goal, I put all my efforts in trying to write a consistent mathematical model able to give me all the statistical informations I needed to reach
the best performances and, of course, the best possible profits.
The iCryptoScalper is an explicit mathematical tool to be used for scalping strategies and optimized for different cryptocurrency pairs on 15/30 min timeframes.
The script gives you many useful informations and details regarding the current and subsequent trade, accompanied with a detailed overview on both the last 20 short
and long trade results.
Let us have a look to all the detailed informations the script shows to you:
CHART
- Lines: The script plots for you the Entry price (yellow line), the Stop Loss price (red line) and a series of 8 Take Profit levels (green lines).
- Background: The green background color indicates that the script is in a long position, viceversa, the red background color indicates that the script is in a short position.
- Labels: The blue labels indicate the maximum achieved profit for each trade.
- Alerts: The script shows two types of alerts, the "prepare to #" one and the true entry one. The prepare alert is very useful to understand when the strategy is going
to enter a specific trade, thus giving you the possibility to set up all the necessary Entry/SL/TP levels on your favorite trading platform.
- Crosses: The green and red crosses are precisely located at the corresponding long and short entry price for the next trade, thus giving you a preview on the target price
that has to be reached for the indicator to enter. They are computed thanks to a mathematical model I set up and optimized for each cryptocurrency pair.
PANEL
- Overview: This part shows you two probability tables for the last 20 long and short trades each. The first table indicates the set of probabilities of reaching the corresponding TP level, whereas the second table shows the conditional probability , namely the probability of reaching a certain profit level once the previous one has been achieved.
Below the tables you can find three quantities again referring to the last 20 long and short trades: the Average Maximum Profit , the Average Maximum Drawdown and the Average Risk/Reward Ratio .
Last but not least, the correlation between the current asset and BTC is displayed together with the current BTC status.
- Active Trade: This part collects all the data related to the current trade status.
- Next Trade: This part collects all the data related to the next trade status.
ATTENTION!
Please notice that the equity line you see in the "Strategy Tester" section of TradingView is unreliable compared to the real performances of the script. This is due to the
fact that the TradingView engine is designed for backtesting automatic trading strategies and not real-time trading bots.
An example is the following: Bob buys 1 BTC-PERP contract at 10000$, setting the Stop Loss at 9000$. The price of the perpetual then goes to 12000$ and then go back hitting the Stop Loss. For the TradingView Engine this is a
trade with a permanent loss of 1000$. However, for the iCryptoScalper users, the trade is perfectly fine thanks to the numerous TP levels (and corresponding probabilities) given by the script within the trade window.
Double SupertrendThis strategy is based on a custom indicator that was created based on the Supertrend indicator. At its core, there are always 2 super trend indicators with different factors to reduce market noise (false signals).
The strategy/indicator has some parameters to improve the signals and filters.
TECHNICAL ANALYSIS
☑ Show Indicators
This option will enable/disable the Supertrend indicators on the chart.
☑ Length
The length will be used on the Supertrend Indicator to calculate its values.
☑ Dev Fast
The fast deviation or factor from one of the super trend indicators. This will be the leading indicator for entry signals, as well as for the exit signals.
☑ Dev Slow
The slow deviation or factor from one of the super trend indicators. This will be the confirmation indicator for entry and exit signals.
☑ Exit Type
It's possible to select from 4 options for the exit signals. Exit signals always take profit target.
☑ ⥹ Reversals
This option will make the strategy/indicator calculate the exit signals based on the difference between the given period's highest and lowest candle value (see Period on this list). It's displayed on the chart with the cross. As it's possible to verify in the image below, there are multiple exit spots for every entry.
☑ ⥹ ATR
Using ATR as a base indicator for exit signals will make the strategy/indicator place limit/stop orders. Candle High + ATR for longs, Candle Low - ATR for shorts. The strategy will show the ATR level for take profit and stick with it until the next signal. This way, the take profit value remains based on the candle of the entry signal.
☑ ⥹ Fast Supertrend
With this option selected, the exit signals will be based on the Fast Supertsignal value, mirrored to make a profit.
☑ ⥹ Slow Supertrend
With this option selected, the exit signals will be based on the Slow Supertsignal value, which is mirrored to take profit.
☑ Period
This will represent the number of candles used on the exit signals when Reversals is selected as Exit Type. It's also used to calculate the gradient used on the Fills and Supertrend signals.
☑ Multiplier
It's used on the take profit when the ATR option is selected on the Exit Type.
STRATEGY
☑ Use The Strategy
This will enable/disable the strategy to show the trades calculations.
☑ Show Use Long/Short Entries
Option to make the strategy show/use Long or Short signals. Available only if Use The Strategy is enabled
☑ Show Use Exit Long/Short
Option to make the strategy show/use Exit Long or Short signals (valid when Reversals option is selected on the Exit Type). Available only if Use The Strategy is enabled
☑ Show Use Add Long/Short
Option to make the strategy show/use Add Long or Short signals. With this option enabled, the strategy will place multiple trades in the same direction, almost the same concept as a pyramiding parameter. It's based on the Fast Supersignal when the candle fails to cross and reverses. Available only if Use The Strategy is enabled
☑ Trades Date Start/End
The date range that the strategy will check the market data and make the trades
HOW TO USE
It's very straightforward. A long signal will appear as a green arrow with a text Long below it. A short signal will appear as a red arrow with a text Short above it. It's ideal to wait for the candle to finish to validate the signal.
The exit signals are optional but give a good idea of the configuration used when backtesting. Each market and timeframe will have its own configuration for the best results. On average, sticking to ATR as an exit signal will have less risk than the other options.
☑ Entry Signals
Follow the arrows with Long/Short texts on them. Wait for the signal candle to close to validate the entry.
☑ Exit Signals
Use them to close your position or to trail stop your orders and maximize profits. Select the exit type suitable for each timeframe and market
☑ Add Entries
It's possible to increase the position following the add margin/contracts based on the Add signals. Not mandatory, but may work as reentries or late entries using the same signal.
☑ What about Stop Loss?
The stop-loss levels were not included as a separated signal because it's already in the chart. There are some possible ideas for the stop loss:
☑⥹ Candle High/Low (2nd recommend option)
When it's a Long signal from the entry signal candle, the stop loss can be the Low value of the same candle. Very tight stop loss in some cases, depending on the candle range
☑⥹ Local Top/Bottom
Selecting the local top/bottom as stop loss will give the strategy more room for false breakouts or reversals, keeping the trade open and minimizing noises. Increases the risk
☑⥹ Fast Supertrend (1st recommend option)
The fast supertrend can be used as stop-loss as well. making it a moving level and working close to trail stop management
☑⥹ Fixed Percentage
It's possible to use a fixed risk percentage for the trades, making the risk easier to control and project. Since the market volatility is not fixed, this may affect the accuracy of the trades
☑⥹ Based on the ATR (3rd recommend option)
When the exit type option ATR is selected, it will display the take profit level for that entry. Just mirror that value and put it as stop-loss, or multiply that amount by 1.5 to have more room for market noise.
EXAMPLE CONFIGURATIONS
Here are some configuration ideas for some markets (all of them are from crypto, especially futures markets)
BTCUSDT 15min - Default configuration
BTCUSDT 1h - Length 10 | Dev Fast 3 | Dev Slow 4 | Exit Type ATR | Period 50 | Multiplier 1
BTCUSDT 4h - Length 10 | Dev Fast 2 | Dev Slow 4 | Exit Type ATR | Period 50 | Multiplier 1
ETHUSDT 15min - Length 20 | Dev Fast 1 | Dev Slow 3 | Exit Type Fast Supertrend | Period 50 | Multiplier 1
IOTAUSDT 15min - Length 10 | Dev Fast 1 | Dev Slow 2 | Exit Type Slow Supertrend | Period 50 | Multiplier 1
OMGUSDT 15min - Length 10 | Dev Fast 1 | Dev Slow 4 | Exit Type Slow Supertrend | Period 50 | Multiplier 1
VETUSDT 15min - Length 10 | Dev Fast 3 | Dev Slow 4 | Exit Type Slow Supertrend | Period 50 | Multiplier 1
HOW TO FIND OTHER CONFIGURATIONS
Here are some steps to find suitable configurations
select a market and time frame
enable the Use This Strategy option on the strategy
open the strategy tester panel and select the performance summary
open the strategy configuration and go to properties
change the balance to the same price of the symbol (example: BTCUSDT 60.000, use 60.000 as balance)
go back to the inputs tab and keep changing the parameters until you see the net profit be positive and bigger than the absolute value of the drawdown
in case you can't find a suitable configuration, try other timeframes
Since the tester reflects what happened in the past candles, it's not guaranteed to give the same results. However, this indicator/Strategy can be used with other indicators as a leading signal or confirmation signal.
Profit Maxima: a crypto strategyThis strategy is designed for those who are looking for long-term positions with low risk and high profitability.
How does it work?
In short, the basis of this strategy is the frequent modeling of the price using regression equations and the estimation of the range of price movements.
The price modeling process starts from the first bars and will be repeated on each bar. This process is performed in each candle based on the data available up to that candle, and data for subsequent bars is not used.
There is also no fixed price model, but it will change from one candle to the next; Therefore, the more candles there are, the larger the statistical population and therefore the quality of the price model increases.
I have also used the concept of scarcity. Bitcoin is the first scarce digital object in the world. Once something becomes scarce enough, it can be used as money. This scarcity gradually increases and affects the price. The entire crypto market also follows Bitcoin.
However, always remember that past results in no way guarantee future performance.
Why this strategy generates a small number of trades?
Preston Pysh believed Bitcoin cycles happen in three phases: the Bull Run, the Correction, and the Reversion to the Mean. He estimates there are about 200,000 blocks per cycle and there are about 144 blocks per day.
Therefore, each cycle of Bitcoin lasts about four years. The entire crypto market follows bitcoin. On the other hand, cryptocurrency is a new phenomenon. They have a limited price history.
This strategy is designed to open a long position at the lowest possible price. In addition, due to the concept of scarcity and its continued impact on prices, trading in the “short” direction is avoided.
The combination of these factors leads to generate a small number of trades. However, you can test it on several different charts to make sure it works properly.
Default settings
{ default_qty_type } = strategy.percent_of_equity
{ default_qty_value } = 3.3
{ commission_value } = 0.1
{ pyramiding } = 3
{ close_entries_rule } = "ANY"
In a simple word, buy (Entry) and sell (take-profit) orders are each done at three different levels. At each level, 3.3% of equity is used (9.9% in total)
0.1% commission is considered for each transaction.
“close_entries_rule” determines the order in which orders are closed. The default is FIFO (first in, first out), but in this strategy, orders are executed in “first in, last out” order. In this way, the lowest buy (Entry) order corresponds to the lowest sell (take profit) order.
Choose the best chart
Charts have a significant impact on the performance of the strategy. As mentioned, the more historical bars there are, the larger the statistical population and therefore the quality of the price model increases.
You can use the Chart Quality panel to choose the appropriate chart:
The ‘Historical Bars’ field shows the number of candles in the chart. Choose the chart of an exchange that has the most historical bars.
The ‘Recommended Chart’ field shows the suggested chart for some symbols.
The “Predictability” field indicates to what extent price movements can be predicted using the model; the higher the “predictability”, the more credible the results of the strategy. "Predictability" indicates that the results of the strategy are reliable or not.
The image below shows the recommended chart for 20 different symbols:
How to use
You don't need automated trading platforms to use it. It can be used by placing simple buy and sell (take-profit) orders manually.
The green and red lines indicate the 'Entry' and 'Profit' levels respectively. If there is no order (buy / sell) active on one of these levels, it will be displayed in gray. The corresponding values are displayed in the Entry & Profit Limits table.
After choosing the appropriate chart, you can use this table to place your orders manually.
Note that trading in the "short" direction is not recommended at all.
Samples
Cyatophilum VWAP StrategyAn indicator to backtest and automate VWAP custom strategies.
Use the Trend Mode to create Swing Trading strategies or Rotation Mode for Intraday Trading.
Configure your strategy using the Entry Condition Builder and Risk Management features, such as Trailing Stop & Take Profits, Safety Orders, and VWAP Exit conditions.
═════════════════════════════════════════════════════════════════════════
█ HOW IT WORKS
VWAP stands for Volume Weighted Average Price.
It is like a simple moving average that takes volume into account.
It is used by a lot of traders since it has everything one needs to know: price and volume.
The cummulated volume calculation resets every session, which interval can be configured.
From that we can calculate the MVWAP and the Standard Deviation Bands and create strategies around that.
█ HOW TO USE
Trend Mode
Trend Mode is the name for strategies built upon VWAP and price/MVWAP cross, most often for Swing Trading on high timeframes trending markets.
The side traded is often long and trying to beat Buy & Hold.
The trade exit can be triggered by a reversal signal (top chart), or a trailing stop (bottom chart) and take profit.
Rotation Mode
This is the mode for Intraday on low timeframes. It will work best on ranging markets.
We use the Standard Deviation Bands to buy/sell the price at overbougth/oversold levels.
The indicator allows to create complex entry conditions such as "Break out of 3rd bands AND break back in 2nd bands" within a certain amount of time.
We will use either the exit options to close the trade when prices reach an opposite band, or the risk management features explained below.
█ FEATURES
• VWAP settings
Configure the VWAP.
• Entry settings
Choose to go long, short, and if the strategy should reverse or not.
• Trend Mode
Choose to create entries from VWAP cross with price or MVWAP.
• Rotation Mode
Configure the 3 bands and build a condition for entry. The multiple inputs allow to add up different events required to trigger an entry, using 3 logical gates that can be linked together using a AND or OR condition. The events being: "break out", "Break back in" or "Just touches" any of the 3 bands. The condition must be met within a certain period of time to be valid.
• Exit settings
Options to exit trades at the end of every session or when the price reaches an opposite band.
• Stop Loss & Take Profit
Configure your stop loss and take profit for long and short trades.
You can also make a trailing stoploss and a trailing take profit.
• Safety Orders (DCA)
Create a strategy with up to 100 safety orders.
Configure their placement and order size using the price deviation, step scale, take profit type (from base order or total volume), and volume scale settings.
Graphics
A Configuration panel with all the indicator settings, useful for sharing a strategy.
A Backtest Results panel with buy & Hold Comparator.
█ ALERTS
Configure your alert messages for all events in the indicator settings.
Then click "Add Alert". In the popup window, select the option "alert() function calls only", give the alert a name and you are good to go!
█ BACKTEST RESULTS
The backtest settings used in this snapshot are the following:
Initial Capital: 10 000€
Order size: 10% equity
Commission: 0.1€ per order
Slippage : 10 ticks
Please read the author instructions below for access.
Ultimate Bollinger Bands by @DaviddTechThis strategy uses the Ultimate Bollinger and Aroon indicator.
The logic behind the code is
* Enter long :
Aroon up is below the 20 or lower line in settings.
Aroon down is above 70 or above line in settings.
When close crossover the lower Bollinger Band we take an entry
SL is %
TP is % of if Aroon up is below the 70 or lower line in settings.
Aroon down is above 20 or above line in settings.
When close crossover the upper Bollinger Band
* Short :
Aroon down is below the 20 or lower line in settings.
Aroon up is above 70 or above line in settings.
When close crossunder the upper Bollinger Band we take an entry
SL is %
TP is % of if Aroon up is below the 20 or lower line in settings.
Aroon down is above 70 or above line in settings.
When close crossover the lower Bollinger Band
Settings I used to get the results below :
====================
** Ultimate Bollinger Bands by @DaviddTech **
====================
Enable Repainting? = False
Enable LONG entries? = True
Enable SHORT entries? = True
lengthBB = 20
Source = close
StdDev = 2
Offset = 0
Aroon Length = 14
Aroon Enter upper band = 85
Aroon Enter lower band = 5
Aroon Exit upper band = 70
Aroon Exit lower band = 20
Restrict Entries to Date Range? = False
From : = 1611100800000
To : = 1613779200000
Show Liquadation line (BETA) = False
Leverage Amount = 25
Maintenance Margin Rate = 0.5
Type of Exit / Entry = Enter New Trade Only if NO running Trades
Type of Take Profit = Custom Stoploss
Type of Stoploss = Custom Stoploss
Stop Loss % = 4
Take Profit % = 6
Highest High lookback = 50
Lowest Low Lookback = 60
Profitfactor Long (Risk to Reward) = 2
Profitfactor Short (Risk to Reward) = 0.5
Stoploss Factor: LONG = 4
SHORT = 4
Profit Factor: LONG = 2
SHORT = 2
ATR Length = 11
Length = 200
Source = hlc3
Multiplier = 3
Level = 764
Take Multi Profit X3 = False
% to take at First TP = 33
% to take at Second TP = 33
% to take at Third TP = 100
Use Strategy Alerts? - Please read the tooltip = False
Show S/R Levels = False
Use MFI + RSI = False
RSI Source = close
RSI Length = 14
RSI Oversold = 30
RSI Overbought = 60
MFI Period = 60
MFI Area multiplier = 150
MFI Area Y Pos = 2.5
Use vWap = False
vWap Source = close
vWap2 Source = close
Vwap Length = 3
EMA Breakout = False
EMA Length = 100
Use MTF EMA cross = False
MTF = 5
EMA Period = 5
MTF = 5
EMA Period = 30
WARNING:
- For purpose educate only - My mission is to debunk fake strategies with code to find THE ONE.
- Plots EMAs and other values on chart.
- This script to change bars colors.
If you have any questions or feedback, please let me know in the comments.
MACD-Extendido-Estrategia por Neil--------------------------------
MACD-Extendida-Estrategia
--------------------------------
DESCRIPTION
Resource that identifies entry and exit operations using the indicator
Average Convergence and Divergence Movements ( MACD ) and 5 strategies
INTERESTING
Novel strategies are implemented such as:
1. Overbought and oversold band to avoid horizontal movements
2. Control inputs and outputs at positions opposite the histogram line
3. Make a profit (take profit) without prior purchase orders
HOW DOES IT WORK (STRATEGIES)
1) Overbought and oversold:
Allows you to define an overbought upper band
Allows you to define an oversold ower band
Operations that occur within the band are ignored
2) Place of next operation (either side):
Indicates that the next operation can occur on either side of the histogram
3) Place of next operation (opposite side):
Indicates that the next operation must occur on the opposite side of the histogram
4) Take profit:
It allows defining the deviation in favor to execute a take profit.
It does not place a buy order at a distant point, instead it looks back and if the shift meets the expected deviation, take profit is executed
5) Loss control (stop loss):
It allows to define the deviation against to execute a stop loss.
It does not place a stop order at a distant point, instead it looks back and if the displacement meets the expected deviation the stop loss is executed
How to use it:
Press the "Indicators" option, go to the "Public Librarian" segment, write the name "MACD-Extended-Strategy by Neil", double-click on the record in question and you will have it added in your work panel, now, just It remains to be used to identify the inputs and outputs and you can do it visually or by defining the automatic notification alerts.
--------------------------------
MACD-Extendida-Estrategia
--------------------------------
DESCRIPCION
Recurso que identifica operaciones de entradas y salida haciendo uso del indicador
Media móvil de Convergencia/Divergencia ( MACD ) y 5 estrategias
NOVEDADES
Se implementan estrategias novedosas como:
1. Banda de sobrecompra y sobreventa para esquivar movimientos horizontales
2. Control de entradas y salidas en posiciones contrarias a la línea del histograma
3. Toma de ganancias (take profit) sin ordenes de compra previa
COMO FUNCIONA (ESTRATEGIAS)
1) Sobrecompra y Sobreventa:
Permite definir una banda superior de sobrecompra
Permite definir una banda inferior de sobreventa
Operaciones que ocurren dentro de la banda son ignoradas
2) Lugar de próxima operación (cualquier lado):
Indica que la próxima operación puede ocurrir en cualquier lado del histograma
3) Lugar de próxima operación (lado opuesto):
Indica que la próxima operación debe ocurrir en el lado opuesto del histograma
4) Toma de ganancias (take profit):
Permite definir la desviación a favor para ejecutar una toma de ganancia.
No coloca una orden de compra en un punto distante, en su lugar mira hacia atrás y si el desplazamiento cumple con la desviación esperada se ejecuta la toma de ganancia
5) Control de pérdida (stop loss):
Permite definir la desviación en contra para ejecutar una parada de pérdida.
No coloca una orden de parada en un punto distante, en su lugar mira hacia atrás y si el desplazamiento cumple con la desviación esperada se ejecuta la parada de la pérdida
Como usarlo:
Presione la opción "Indicadores", ubíquese en el segmento "Libreria Publica", escriba el nombre "MACD-Extendido-Estrategia por Neil", haga doble clic sobre el registro en cuestión y lo tendrá agregado en su panel de trabajo, ahora, solo resta usarlo para identificar las entradas y salidas y puede hacerlo de forma visual o definiendo las alertas de notificación automática.
SSP + VWMAInput menu allows you to set long / short entries using,
Net volume change from above or below zero.,
Net volume changes of positive to negative values,
VWAP rising or falling.
VWMA rising or falling
Stop loss and take profit are built in to test the most profitable strategy.
uncheck net volume in menu bar to remove background colours on chart
Uncheck VWAP and VWMAto test long and short entries ( using net volume change ) note session look back is available to edit, if use take profit is unchecked then this will simulate net volume change from positive to negative.
Check VWMA or VWAP to simulate long or short entries
With VWAP checked this will simulate VWAP entries with rising / falling VWAP with previous take profit and stop losses that we’re profitable.
RSI Strategy w/ Trailing SL / TP Optimized for Crypto [Strategy]This strategy is designed to use the RSI and EMA filters. A 200 period EMA is used for short / long filters, and the 50 period EMA is used to determine the direction of the short term trend.
In addition, the script uses "rate of change" for the fast EMA (trend), volume , RSI (momentum), and price (volatility) and only takes trades when all are in optimal conditions.
I.E., the EMA is in an uptrend, the volume is increasing, price is in an uptrend, and the RSI is in an uptrend, so we will place a Long trade.
This strategy uses EMAs as a trailing stop loss and take profit. As this is a trend following strategy, the idea is to maximize profits when correct and minimize losses when
wrong.
It was designed specifically using crypto pairs, and was optimized for the 10 minute chart.
My goal was to get the best use out of the RSI indicator. I was originally an MACD fanboy, but have recently converted.
Want to help me improve this code or strategy? Have suggestions for improvement? Leave them in the comments below.
Thanks for using my script! I hope it works well for you and good luck in the markets.
If you have any questions, please leave them in the comments and I'll do my best to respond.
This script does not repaint as it only relies on close data to make a decision to enter a trade.
How to use this strategy:
___________________________
Enable Long Entries? - Used to enable or disable the strategy from executing long entries.
Enable Short Entries? - Used to enable or disable the strategy from executing short entries.
How Many Bars To Look Back for Hi/Lo: - This is used for the Stop Loss and Take Profit targets. An integer of bars is used to look back and calculate the values.
RSI Length (Rec: 8) - The length of the RSI
Source - The RSI Source
Use Slow EMA? - If checked, a 200 period EMA will be used to filter entries long or short (only take shorts when the price is below, long when above). In addition, the script will close any trades that cross the 200 period EMA. By default this is disabled.
EMA Slow - the period of the Slow EMA (200 by default)
EMA Slow Src - what to use to calculate the Slow EMA (high by default)
EMA Fast - The Fast EMA (50 period) is used to calculate the direction of the short term trend. This also factored into the Rates of Change.
EMA Fast Src - what to use to calculate the Fast EMA
ATR Length - If used, the ATR length is used to calculate the Stop Loss and Take Profit targets.
SL Multiplier - The distance away from the initial value to multiply the Stop Loss
TP Multiplier - The distance away from the initial value to multiply the Take Profit.
Use EMA as SL / TP? - If true (default) a 3 period EMA is used to calculate Stop Loss and Take Profit targets. Else, an ATR is used to calculate these values.
Stop Loss / Take Profit Offset - Default: 3 - this is used to shift the EMA / ATR Stop Loss and Take Profit lines to the right X bars. This is to ensure that they are hit properly and not exceeded.
Short Len Vol - Use to calculate the volume of the short length, used in rate of change calculations
Long Len - Use to calculate the volume of the long length, used in rate of change calculations
RSI Long Entry Val - Minimum RSI crossover value to enter a trade Long. If the RSI is below this value, trade entries are not valid.
RSI Long Cutoff Threshold - Long entry RSI value cutoff to no longer enter trades. If the RSI is above this value, trades entries are not valid.
RSI Short Entry Val - Minimum RSI crossover value to enter a trade Short. If the RSI is above this value, trade entries are not valid.
RSI Short Cutoff Threshold - Short entry RSI value cutoff to no longer enter trades. If the RSI is below this value, trades entries are not valid.
ROC Fast EMA - Calculates the rate of change between the Fast Ema now and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
ROC Price - Calculates the rate of change between the most recent price close and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
ROC RSI - Calculates the rate of change between the RSI now and 'X' bars ago. \n\n For a long entry, a positive value is needed, and for a short entry, a negative value is needed.
Use Close for SL - Default = Off - If checked, when a candle hits the stop loss, the trade will close on the next candle. If unchecked, the trade will remain open until the candle closes at or beyond the stop loss lines.
Custom Message Boxes - Primarily used for bots, but can be used to also insert your own messages for your trading alerts.
FCMS - Time in x Timing - The Market - StudyTime in x Timing - The Market
█ DISCLAIMER
THIS IS NOT AN INVESTMENT ADVICE
The use of strategy functions doesn't compile recurring investments/contributions as used in this study, so disregard the results of the strategy tester.
As seen in the style/plots lists, I calculate the results in internal variables to analyze historical results.
prnt.sc
Anyway, this is only a historical study and past performance is no guarantee of future results
█ CONCEPTS
There is a discussion about Timing x Time in the market.
The point of this discussion is between buying in the better moment, against exposing yourself to the market as soon as possible.
Anyone who argues that the most important factor is the time exposed to the asset, no matter when, is usually based on the SP500 asset.
As shown in the image above, a hypothetical investor who made a single investment of US $ 1500.00 in December 1999, was trapped by a volatility of approximately 10% in the period, followed by a loss of around 50% in the following years. In December 2012, this investment was finally positive, and after 20 years it accumulated a gain of 180% - without reducing inflation in the period.
█ Timing the news
When an asset reaches a new historic high, the idea of "time in the market is the best strategy" gains momentum, after all, at this "moment" everyone previously exposed to the asset is making a profit, regardless of inflation or any benchmark.
█ Time in the market
Considering using this strategy, we can define 3 points for a brief analysis:
1. Asset
SPX is used as a reference for this type of statement due to the difficulty of finding another one with such consistency, liquidity, ease of access and time of history.
2. Long Term
We cannot consider it a long term strategy, as it never has a predetermined term
3. Recurring contributions.
To generate an average cost spread over periods of high and low, opening the possibility to realize positions with profit in eventual needs.
As shown in the image below, if this hypothetical investor made monthly contributions since the date of the first contributions, he would have the possibility of making profits between the period from October 2004 to September 2008, returning to the loss until October 2010, and then with a profit of 100% over the total amount invested.
Below, an example of an asset in a downtrend with the final balance returning below the total volume invested.
█ First Conclusion
> Recurring contributions (3) to an asset (1) during a downtrend will increase the loss for an indefinite period (2).
> Recurring contributions (3) to an asset (1) during an uptrend are more important than immediate exposure to the asset, regardless of the term (2).
> Recurring contributions (3) in an asset (1) in a region of possible long-term top (2), will negatively affect profitability even considering the resumption of the upward trend in an indefinite period.
█ Timing the market
As shown in the image below, following the strategy above: a single contribution in the amount of US$ 1000.00 at the worst moment (Dec / 2017), the hypothetical investor would have hold a loss of over 80%. At the moment it accumulates 89% of profit, having reached the maximum of 200% at the beginning of the year.
By making monthly contributions since the date of the first contribution, this investor would have the possibility to make profits from May 2019, accumulating 335% profit at the moment.
Adding the condition of buying the maximum cost of 10% above the average price of the last 200 days, the final result is little affected, and reduces losses in the initial investment period.
Adding the condition of taking profit of 50% of the position when the price is above the average of the last 200 days, and reinvesting 50% of the cash obtained in the next purchase opportunity (paying a maximum of 10% above the average of the last 200 days), the profit cumulative final price drops to 270%, but the realized profit already exceeds the total amount invested, which eliminates future risk of the operation. (favorable risk-return ratio)
Adding the condition to reinvest 50% of the cash flow, with the condition to buy when the price is below 20% away from the average of the last 200 days, the final result would be more than 400% of retained earnings, and realized profit in cash greater than the total amount invested.
█ Other Assets
It's possible to analyze other assets, including dividend yield and earnings for the equity formula. This way we can analyse assets more fairly.
ITSA4
BOVA11
█ Final Conclusion
> Exposing yourself early to a good opportunity may be good, but the risk of doing so at the wrong time could delay your projects indefinitely.
> Investment recurrence is the main driver for your future results.
> Setting a maximum value for making entries reduces short-term fluctuation but, in the long run, the effect is almost imperceptible.
> The realization of profits at favorable times considerably reduces the risk and volatility of the balance, in addition to providing cash for better opportunities in the short and medium term.
> Taking advantage of part of this cash flow for purchases in moments of opportunity, enhances future earnings.
Even an extremely simple strategy like the one used in the examples above, offers a better risk return for the investor compared to the immediate exposure to an asset.
Thus arises the desire to study more sophisticated strategies, as we will see in the future
█ Challenges
Time in the market
- Find good assets (1) to make recurring contributions (3) for an indeterminate period (2).
Timing the market
- Reading the markets to position yourself in favor of the more probable trends at certain times with predetermined terms.
(IK) Base Break BuyThis strategy first calculates areas of support (bases), and then enters trades if that support is broken. The idea is to profit off of retracement. Dollar-cost-averaging safety orders are key here. This strategy takes into account a .1% commission, and tests are done with an initial capital of 100.00 USD. This only goes long.
The strategy is highly customizable. I've set the default values to suit ETH/USD 15m. If you're trading this on another ticker or timeframe, make sure to play around with the settings. There is an explanation of each input in the script comments. I found this to be profitable across most 'common sense' values for settings, but tweaking led to some pretty promising results. I leaned more towards high risk/high trade volume.
Always remember though: historical performance is no guarantee of future behavior . Keep settings within your personal risk tolerance, even if it promises better profit. Anyone can write a 100% profitable script if they assume price always eventually goes up.
Check the script comments for more details, but, briefly, you can customize:
-How many bases to keep track of at once
-How those bases are calculated
-What defines a 'base break'
-Order amounts
-Safety order count
-Stop loss
Here's the basic algorithm:
-Identify support.
--Have previous candles found bottoms in the same area of the current candle bottom?
--Is this support unique enough from other areas of support?
-Determine if support is broken.
--Has the price crossed under support quickly and with certainty?
-Enter trade with a percentage of initial capital.
-Execute safety orders if price continues to drop.
-Exit trade at profit target or stop loss.
Take profit is dynamic and calculated on order entry. The bigger the 'break', the higher your take profit percentage. This target percentage is based on average position size, so as safety orders are filled, and average position size comes down, the target profit becomes easier to reach.
Stop loss can be calculated one of two ways, either a static level based on initial entry, or a dynamic level based on average position size. If you use the latter (default), be aware, your real losses will be greater than your stated stop loss percentage . For example:
-stop loss = 15%, capital = 100.00, safety order threshold = 10%
-you buy $50 worth of shares at $1 - price average is $1
-you safety $25 worth of shares at $0.9 - price average is $0.966
-you safety $25 worth of shares at $0.8. - price average is $0.925
-you get stopped out at 0.925 * (1-.15) = $0.78625, and you're left with $78.62.
This is a realized loss of ~21.4% with a stop loss set to 15%. The larger your safety order threshold, the larger your real loss in comparison to your stop loss percentage, and vice versa.
Indicator plots show the calculated bases in white. The closest base below price is yellow. If that base is broken, it turns purple. Once a trade is entered, profit target is shown in silver and stop loss in red.
BitcoinNinjas NINJASIGNALS V4 (Strategy)BitcoinNinjas NINJASIGNALS V4 (Strategy)
(for Cryptocurrencies, Forex, GunBot, ProfitTrailer, Autoview, CryptoHopper, manual or automated trading, and more)
This is version 4 of our Ninja Signals trading script, with accompanying backtesting strategy.
BitcoinNinjas NINJASIGNALS V4 (Script)
•Allows users to easily set automated buy/long and sell/short alerts on TradingView for use with automatic and manual trading of cryptocurrencies, Forex securities, and more (alerts are compatible with automatic trading software such as GunBot, ProfitTrailer, Autoview, CryptoHopper, and more).
•Synthesizes many powerful indicators [e.g., Relative Strength Index (RSI), Stochastic RSI, Money Flow Index (MFI), Moving Average Convergence Divergence (MACD), etc.) into one powerful script to generate very precise buy and sell signals in virtually all market conditions.
•Features user-defined adjustable calibration settings, allowing traders to customize the script to fit any currency / security on any exchange available through TradingView.com, simply by adjusting settings.
•Buy/Long arrows, Sell/Short arrows, & EMA trendline can be customized or hidden, if desired.
•Complete with backtesting strategy version of script which allows users to test various trading strategies based on the alerts the script generates (see information and screenshots below).
•Backtesting strategy features a user-defined adjustable date range, so traders can estimate performance of the script over specific periods of time, such as the last week, month, or year.
•Script and backtesting strategy feature many user-adjustable settings including stop loss and take profit alerts, an ‘only sell for profit’ option (Gunbot-specific), many different buy and sell filters, and more. Simply adjust the script settings and the backtesting results will automatically refresh.
•Backtesting strategy allows for pyramid buying to test various average down / dollar cost average trading strategies. Simply adjust the number of pyramid buys and the quantity of each buy.
•Fully compatible with margin and futures trading for any currency / security on TradingView.com.
DISCLAIMER: By using our BitcoinNinjas ‘Ninja Signals’ planning script, you agree to the BitcoinNinjas 'Terms of Use'. No sharing, copying, reselling, modifying, or any other forms of use are authorized for our documents, script / strategy, and the information published with them. This informational planning script / strategy is strictly for individual use and educational purposes only. This is not financial or investment advice. Investments are always made at your own risk and are based on your personal judgement. BitcoinNinjas is not responsible for any losses you may incur. Please invest wisely.
888 BOT #backtest█ 888 BOT #backtest (open source)
This is an Expert Advisor 'EA' or Automated trading script for ‘longs’ and ‘shorts’, which uses only a Take Profit or, in the worst case, a Stop Loss to close the trade.
It's a much improved version of the previous ‘Repanocha’. It doesn`t use 'Trailing Stop' or 'security()' functions (although using a security function doesn`t mean that the script repaints) and all signals are confirmed, therefore the script doesn`t repaint in alert mode and is accurate in backtest mode.
Apart from the previous indicators, some more and other functions have been added for Stop-Loss, re-entry and leverage.
It uses 8 indicators, (many of you already know what they are, but in case there is someone new), these are the following:
1. Jurik Moving Average
It's a moving average created by Mark Jurik for professionals which eliminates the 'lag' or delay of the signal. It's better than other moving averages like EMA , DEMA , AMA or T3.
There are two ways to decrease noise using JMA . Increasing the 'LENGTH' parameter will cause JMA to move more slowly and therefore reduce noise at the expense of adding 'lag'
The 'JMA LENGTH', 'PHASE' and 'POWER' parameters offer a way to select the optimal balance between 'lag' and over boost.
Green: Bullish , Red: Bearish .
2. Range filter
Created by Donovan Wall, its function is to filter or eliminate noise and to better determine the price trend in the short term.
First, a uniform average price range 'SAMPLING PERIOD' is calculated for the filter base and multiplied by a specific quantity 'RANGE MULTIPLIER'.
The filter is then calculated by adjusting price movements that do not exceed the specified range.
Finally, the target ranges are plotted to show the prices that will trigger the filter movement.
Green: Bullish , Red: Bearish .
3. Average Directional Index ( ADX Classic) and ( ADX Masanakamura)
It's an indicator designed by Welles Wilder to measure the strength and direction of the market trend. The price movement is strong when the ADX has a positive slope and is above a certain minimum level 'ADX THRESHOLD' and for a given period 'ADX LENGTH'.
The green color of the bars indicates that the trend is bullish and that the ADX is above the level established by the threshold.
The red color of the bars indicates that the trend is down and that the ADX is above the threshold level.
The orange color of the bars indicates that the price is not strong and will surely lateralize.
You can choose between the classic option and the one created by a certain 'Masanakamura'. The main difference between the two is that in the first it uses RMA () and in the second SMA () in its calculation.
4. Parabolic SAR
This indicator, also created by Welles Wilder, places points that help define a trend. The Parabolic SAR can follow the price above or below, the peculiarity that it offers is that when the price touches the indicator, it jumps to the other side of the price (if the Parabolic SAR was below the price it jumps up and vice versa) to a distance predetermined by the indicator. At this time the indicator continues to follow the price, reducing the distance with each candle until it is finally touched again by the price and the process starts again. This procedure explains the name of the indicator: the Parabolic SAR follows the price generating a characteristic parabolic shape, when the price touches it, stops and turns ( SAR is the acronym for 'stop and reverse'), giving rise to a new cycle. When the points are below the price, the trend is up, while the points above the price indicate a downward trend.
5. RSI with Volume
This indicator was created by LazyBear from the popular RSI .
The RSI is an oscillator-type indicator used in technical analysis and also created by Welles Wilder that shows the strength of the price by comparing individual movements up or down in successive closing prices.
LazyBear added a volume parameter that makes it more accurate to the market movement.
A good way to use RSI is by considering the 50 'RSI CENTER LINE' centerline. When the oscillator is above, the trend is bullish and when it is below, the trend is bearish .
6. Moving Average Convergence Divergence ( MACD ) and ( MAC-Z )
It was created by Gerald Appel. Subsequently, the histogram was added to anticipate the crossing of MA. Broadly speaking, we can say that the MACD is an oscillator consisting of two moving averages that rotate around the zero line. The MACD line is the difference between a short moving average 'MACD FAST MA LENGTH' and a long moving average 'MACD SLOW MA LENGTH'. It's an indicator that allows us to have a reference on the trend of the asset on which it is operating, thus generating market entry and exit signals.
We can talk about a bull market when the MACD histogram is above the zero line, along with the signal line, while we are talking about a bear market when the MACD histogram is below the zero line.
There is the option of using the MAC-Z indicator created by LazyBear, which according to its author is more effective, by using the parameter VWAP ( volume weighted average price ) 'Z-VWAP LENGTH' together with a standard deviation 'STDEV LENGTH' in its calculation.
7. Volume Condition
Volume indicates the number of participants in this war between bulls and bears, the more volume the more likely the price will move in favor of the trend. A low trading volume indicates a lower number of participants and interest in the instrument in question. Low volumes may reveal weakness behind a price movement.
With this condition, those signals whose volume is less than the volume SMA for a period 'SMA VOLUME LENGTH' multiplied by a factor 'VOLUME FACTOR' are filtered. In addition, it determines the leverage used, the more volume , the more participants, the more probability that the price will move in our favor, that is, we can use more leverage. The leverage in this script is determined by how many times the volume is above the SMA line.
The maximum leverage is 8.
8. Bollinger Bands
This indicator was created by John Bollinger and consists of three bands that are drawn superimposed on the price evolution graph.
The central band is a moving average, normally a simple moving average calculated with 20 periods is used. ('BB LENGTH' Number of periods of the moving average)
The upper band is calculated by adding the value of the simple moving average X times the standard deviation of the moving average. ('BB MULTIPLIER' Number of times the standard deviation of the moving average)
The lower band is calculated by subtracting the simple moving average X times the standard deviation of the moving average.
the band between the upper and lower bands contains, statistically, almost 90% of the possible price variations, which means that any movement of the price outside the bands has special relevance.
In practical terms, Bollinger bands behave as if they were an elastic band so that, if the price touches them, it has a high probability of bouncing.
Sometimes, after the entry order is filled, the price is returned to the opposite side. If price touch the Bollinger band in the same previous conditions, another order is filled in the same direction of the position to improve the average entry price, (% MINIMUM BETTER PRICE ': Minimum price for the re-entry to be executed and that is better than the price of the previous position in a given %) in this way we give the trade a chance that the Take Profit is executed before. The downside is that the position is doubled in size. 'ACTIVATE DIVIDE TP': Divide the size of the TP in half. More probability of the trade closing but less profit.
█ STOP LOSS and RISK MANAGEMENT.
A good risk management is what can make your equity go up or be liquidated.
The % risk is the percentage of our capital that we are willing to lose by operation. This is recommended to be between 1-5%.
% Risk: (% Stop Loss x % Equity per trade x Leverage) / 100
First the strategy is calculated with Stop Loss, then the risk per operation is determined and from there, the amount per operation is calculated and not vice versa.
In this script you can use a normal Stop Loss or one according to the ATR. Also activate the option to trigger it earlier if the risk percentage is reached. '% RISK ALLOWED'
'STOP LOSS CONFIRMED': The Stop Loss is only activated if the closing of the previous bar is in the loss limit condition. It's useful to prevent the SL from triggering when they do a ‘pump’ to sweep Stops and then return the price to the previous state.
█ BACKTEST
The objective of the Backtest is to evaluate the effectiveness of our strategy. A good Backtest is determined by some parameters such as:
- RECOVERY FACTOR: It consists of dividing the 'net profit' by the 'drawdown’. An excellent trading system has a recovery factor of 10 or more; that is, it generates 10 times more net profit than drawdown.
- PROFIT FACTOR: The ‘Profit Factor’ is another popular measure of system performance. It's as simple as dividing what win trades earn by what loser trades lose. If the strategy is profitable then by definition the 'Profit Factor' is going to be greater than 1. Strategies that are not profitable produce profit factors less than one. A good system has a profit factor of 2 or more. The good thing about the ‘Profit Factor’ is that it tells us what we are going to earn for each dollar we lose. A profit factor of 2.5 tells us that for every dollar we lose operating we will earn 2.5.
- SHARPE: (Return system - Return without risk) / Deviation of returns.
When the variations of gains and losses are very high, the deviation is very high and that leads to a very poor ‘Sharpe’ ratio. If the operations are very close to the average (little deviation) the result is a fairly high 'Sharpe' ratio. If a strategy has a 'Sharpe' ratio greater than 1 it is a good strategy. If it has a 'Sharpe' ratio greater than 2, it is excellent. If it has a ‘Sharpe’ ratio less than 1 then we don't know if it is good or bad, we have to look at other parameters.
- MATHEMATICAL EXPECTATION: (% winning trades X average profit) + (% losing trades X average loss).
To earn money with a Trading system, it is not necessary to win all the operations, what is really important is the final result of the operation. A Trading system has to have positive mathematical expectation as is the case with this script: ME = (0.87 x 30.74$) - (0.13 x 56.16$) = (26.74 - 7.30) = 19.44$ > 0
The game of roulette, for example, has negative mathematical expectation for the player, it can have positive winning streaks, but in the long term, if you continue playing you will end up losing, and casinos know this very well.
PARAMETERS
'BACKTEST DAYS': Number of days back of historical data for the calculation of the Backtest.
'ENTRY TYPE': For '% EQUITY' if you have $ 10,000 of capital and select 7.5%, for example, your entry would be $ 750 without leverage. If you select CONTRACTS for the 'BTCUSDT' pair, for example, it would be the amount in 'Bitcoins' and if you select 'CASH' it would be the amount in $ dollars.
'QUANTITY (LEVERAGE 1X)': The amount for an entry with X1 leverage according to the previous section.
'MAXIMUM LEVERAGE': It's the maximum allowed multiplier of the quantity entered in the previous section according to the volume condition.
The settings are for Bitcoin at Binance Futures (BTC: USDTPERP) in 15 minutes.
For other pairs and other timeframes, the settings have to be adjusted again. And within a month, the settings will be different because we all know the market and the trend are changing.
Ruckard TradingLatinoThis strategy tries to mimic TradingLatino strategy.
The current implementation is beta.
Si hablas castellano o espanyol por favor consulta MENSAJE EN CASTELLANO más abajo.
It's aimed at BTCUSDT pair and 4h timeframe.
STRATEGY DEFAULT SETTINGS EXPLANATION
max_bars_back=5000 : This is a random number of bars so that the strategy test lasts for one or two years
calc_on_order_fills=false : To wait for the 4h closing is too much. Try to check if it's worth entering a position after closing one. I finally decided not to recheck if it's worth entering after an order is closed. So it is false.
calc_on_every_tick=false
pyramiding=0 : We only want one entry allowed in the same direction. And we don't want the order to scale by error.
initial_capital=1000 : These are 1000 USDT. By using 1% maximum loss per trade and 7% as a default stop loss by using 1000 USDT at 12000 USDT per BTC price you would entry with around 142 USDT which are converted into: 0.010 BTC . The maximum number of decimal for contracts on this BTCUSDT market is 3 decimals. E.g. the minimum might be: 0.001 BTC . So, this minimal 1000 amount ensures us not to entry with less than 0.001 entries which might have happened when using 100 USDT as an initial capital.
slippage=1 : Binance BTCUSDT mintick is: 0.01. Binance slippage: 0.1 % (Let's assume). TV has an integer slippage. It does not have a percentage based slippage. If we assume a 1000 initial capital, the recommended equity is 142 which at 11996 USDT per BTC price means: 0.011 BTC. The 0.1% slippage of: 0.011 BTC would be: 0.000011 . This is way smaller than the mintick. So our slippage is going to be 1. E.g. 1 (slippage) * 0.01 (mintick)
commission_type=strategy.commission.percent and commission_value=0.1 : According to: binance . com / en / fee / schedule in VIP 0 level both maker and taker fees are: 0.1 %.
BACKGROUND
Jaime Merino is a well known Youtuber focused on crypto trading
His channel TradingLatino
features monday to friday videos where he explains his strategy.
JAIME MERINO STANCE ON BOTS
Jaime Merino stance on bots (taken from memory out of a 2020 June video from him):
'~
You know. They can program you a bot and it might work.
But, there are some special situations that the bot would not be able to handle.
And, I, as a human, I would handle it. And the bot wouldn't do it.
~'
My long term target with this strategy script is add as many
special situations as I can to the script
so that it can match Jaime Merino behaviour even in non normal circumstances.
My alternate target is learn Pine script
and enjoy programming with it.
WARNING
This script might be bigger than other TradingView scripts.
However, please, do not be confused because the current status is beta.
This script has not been tested with real money.
This is NOT an official strategy from Jaime Merino.
This is NOT an official strategy from TradingLatino . net .
HOW IT WORKS
It basically uses ADX slope and LazyBear's Squeeze Momentum Indicator
to make its buy and sell decisions.
Fast paced EMA being bigger than slow paced EMA
(on higher timeframe) advices going long.
Fast paced EMA being smaller than slow paced EMA
(on higher timeframe) advices going short.
It finally add many substrats that TradingLatino uses.
SETTINGS
__ SETTINGS - Basics
____ SETTINGS - Basics - ADX
(ADX) Smoothing {14}
(ADX) DI Length {14}
(ADX) key level {23}
____ SETTINGS - Basics - LazyBear Squeeze Momentum
(SQZMOM) BB Length {20}
(SQZMOM) BB MultFactor {2.0}
(SQZMOM) KC Length {20}
(SQZMOM) KC MultFactor {1.5}
(SQZMOM) Use TrueRange (KC) {True}
____ SETTINGS - Basics - EMAs
(EMAS) EMA10 - Length {10}
(EMAS) EMA10 - Source {close}
(EMAS) EMA55 - Length {55}
(EMAS) EMA55 - Source {close}
____ SETTINGS - Volume Profile
Lowest and highest VPoC from last three days
is used to know if an entry has a support
VPVR of last 100 4h bars
is also taken into account
(VP) Use number of bars (not VP timeframe): Uses 'Number of bars {100}' setting instead of 'Volume Profile timeframe' setting for calculating session VPoC
(VP) Show tick difference from current price {False}: BETA . Might be useful for actions some day.
(VP) Number of bars {100}: If 'Use number of bars (not VP timeframe)' is turned on this setting is used to calculate session VPoC.
(VP) Volume Profile timeframe {1 day}: If 'Use number of bars (not VP timeframe)' is turned off this setting is used to calculate session VPoC.
(VP) Row width multiplier {0.6}: Adjust how the extra Volume Profile bars are shown in the chart.
(VP) Resistances prices number of decimal digits : Round Volume Profile bars label numbers so that they don't have so many decimals.
(VP) Number of bars for bottom VPOC {18}: 18 bars equals 3 days in suggested timeframe of 4 hours. It's used to calculate lowest session VPoC from previous three days. It's also used as a top VPOC for sells.
(VP) Ignore VPOC bottom advice on long {False}: If turned on it ignores bottom VPOC (or top VPOC on sells) when evaluating if a buy entry is worth it.
(VP) Number of bars for VPVR VPOC {100}: Number of bars to calculate the VPVR VPoC. We use 100 as Jaime once used. When the price bounces back to the EMA55 it might just bounce to this VPVR VPoC if its price it's lower than the EMA55 (Sells have inverse algorithm).
____ SETTINGS - ADX Slope
ADX Slope
help us to understand if ADX
has a positive slope, negative slope
or it is rather still.
(ADXSLOPE) ADX cut {23}: If ADX value is greater than this cut (23) then ADX has strength
(ADXSLOPE) ADX minimum steepness entry {45}: ADX slope needs to be 45 degrees to be considered as a positive one.
(ADXSLOPE) ADX minimum steepness exit {45}: ADX slope needs to be -45 degrees to be considered as a negative one.
(ADXSLOPE) ADX steepness periods {3}: In order to avoid false detection the slope is calculated along 3 periods.
____ SETTINGS - Next to EMA55
(NEXTEMA55) EMA10 to EMA55 bounce back percentage {80}: EMA10 might bounce back to EMA55 or maybe to 80% of its complete way to EMA55
(NEXTEMA55) Next to EMA55 percentage {15}: How much next to the EMA55 you need to be to consider it's going to bounce back upwards again.
____ SETTINGS - Stop Loss and Take Profit
You can set a default stop loss or a default take profit.
(STOPTAKE) Stop Loss % {7.0}
(STOPTAKE) Take Profit % {2.0}
____ SETTINGS - Trailing Take Profit
You can customize the default trailing take profit values
(TRAILING) Trailing Take Profit (%) {1.0}: Trailing take profit offset in percentage
(TRAILING) Trailing Take Profit Trigger (%) {2.0}: When 2.0% of benefit is reached then activate the trailing take profit.
____ SETTINGS - MAIN TURN ON/OFF OPTIONS
(EMAS) Ignore advice based on emas {false}.
(EMAS) Ignore advice based on emas (On closing long signal) {False}: Ignore advice based on emas but only when deciding to close a buy entry.
(SQZMOM) Ignore advice based on SQZMOM {false}: Ignores advice based on SQZMOM indicator.
(ADXSLOPE) Ignore advice based on ADX positive slope {false}
(ADXSLOPE) Ignore advice based on ADX cut (23) {true}
(STOPTAKE) Take Profit? {false}: Enables simple Take Profit.
(STOPTAKE) Stop Loss? {True}: Enables simple Stop Loss.
(TRAILING) Enable Trailing Take Profit (%) {True}: Enables Trailing Take Profit.
____ SETTINGS - Strategy mode
(STRAT) Type Strategy: 'Long and Short', 'Long Only' or 'Short Only'. Default: 'Long and Short'.
____ SETTINGS - Risk Management
(RISKM) Risk Management Type: 'Safe', 'Somewhat safe compound' or 'Unsafe compound'. ' Safe ': Calculations are always done with the initial capital (1000) in mind. The maximum losses per trade/day/week/month are taken into account. ' Somewhat safe compound ': Calculations are done with initial capital (1000) or a higher capital if it increases. The maximum losses per trade/day/week/month are taken into account. ' Unsafe compound ': In each order all the current capital is gambled and only the default stop loss per order is taken into account. That means that the maximum losses per trade/day/week/month are not taken into account. Default : 'Somewhat safe compound'.
(RISKM) Maximum loss per trade % {1.0}.
(RISKM) Maximum loss per day % {6.0}.
(RISKM) Maximum loss per week % {8.0}.
(RISKM) Maximum loss per month % {10.0}.
____ SETTINGS - Decimals
(DECIMAL) Maximum number of decimal for contracts {3}: How small (3 decimals means 0.001) an entry position might be in your exchange.
EXTRA 1 - PRICE IS IN RANGE indicator
(PRANGE) Print price is in range {False}: Enable a bottom label that indicates if the price is in range or not.
(PRANGE) Price range periods {5}: How many previous periods are used to calculate the medians
(PRANGE) Price range maximum desviation (%) {0.6} ( > 0 ): Maximum positive desviation for range detection
(PRANGE) Price range minimum desviation (%) {0.6} ( > 0 ): Mininum negative desviation for range detection
EXTRA 2 - SQUEEZE MOMENTUM Desviation indicator
(SQZDIVER) Show degrees {False}: Show degrees of each Squeeze Momentum Divergence lines to the x-axis.
(SQZDIVER) Show desviation labels {False}: Whether to show or not desviation labels for the Squeeze Momentum Divergences.
(SQZDIVER) Show desviation lines {False}: Whether to show or not desviation lines for the Squeeze Momentum Divergences.
EXTRA 3 - VOLUME PROFILE indicator
WARNING: This indicator works not on current bar but on previous bar. So in the worst case it might be VP from 4 hours ago. Don't worry, inside the strategy calculus the correct values are used. It's just that I cannot show the most recent one in the chart.
(VP) Print recent profile {False}: Show Volume Profile indicator
(VP) Avoid label price overlaps {False}: Avoid label prices to overlap on the chart.
EXTRA 4 - ZIGNALY SUPPORT
(ZIG) Zignaly Alert Type {Email}: 'Email', 'Webhook'. ' Email ': Prepare alert_message variable content to be compatible with zignaly expected email content format. ' Webhook ': Prepare alert_message variable content to be compatible with zignaly expected json content format.
EXTRA 5 - DEBUG
(DEBUG) Enable debug on order comments {False}: If set to true it prepares the order message to match the alert_message variable. It makes easier to debug what would have been sent by email or webhook on each of the times an order is triggered.
HOW TO USE THIS STRATEGY
BOT MODE: This is the default setting.
PROPER VOLUME PROFILE VIEWING: Click on this strategy settings. Properties tab. Make sure Recalculate 'each time the order was run' is turned off.
NEWBIE USER: (Check PROPER VOLUME PROFILE VIEWING above!) You might want to turn on the 'Print recent profile {False}' setting. Alternatively you can use my alternate realtime study: 'Resistances and supports based on simplified Volume Profile' but, be aware, it might consume one indicator.
ADVANCED USER 1: Turn on the 'Print price is in range {False}' setting and help us to debug this subindicator. Also help us to figure out how to include this value in the strategy.
ADVANCED USER 2: Turn on the all the (SQZDIVER) settings and help us to figure out how to include this value in the strategy.
ADVANCED USER 3: (Check PROPER VOLUME PROFILE VIEWING above!) Turn on the 'Print recent profile {False}' setting and report any problem with it.
JAIME MERINO: Just use the indicator as it comes by default. It should only show BUY signals, SELL signals and their associated closing signals. From time to time you might want to check 'ADVANCED USER 2' instructions to check that there's actually a divergence. Check also 'ADVANCED USER 1' instructions for your amusement.
EXTRA ADVICE
It's advised that you use this strategy in addition to these two other indicators:
* Squeeze Momentum Indicator
* ADX
so that your chart matches as close as possible to TradingLatino chart.
ZIGNALY INTEGRATION
This strategy supports Zignaly email integration by default. It also supports Zignaly Webhook integration.
ZIGNALY INTEGRATION - Email integration example
What you would write in your alert message:
||{{strategy.order.alert_message}}||key=MYSECRETKEY||
ZIGNALY INTEGRATION - Webhook integration example
What you would write in your alert message:
{ {{strategy.order.alert_message}} , "key" : "MYSECRETKEY" }
CREDITS
I have reused and adapted some code from
'Directional Movement Index + ADX & Keylevel Support' study
which it's from TradingView console user.
I have reused and adapted some code from
'3ema' study
which it's from TradingView hunganhnguyen1193 user.
I have reused and adapted some code from
'Squeeze Momentum Indicator ' study
which it's from TradingView LazyBear user.
I have reused and adapted some code from
'Strategy Tester EMA-SMA-RSI-MACD' study
which it's from TradingView fikira user.
I have reused and adapted some code from
'Support Resistance MTF' study
which it's from TradingView LonesomeTheBlue user.
I have reused and adapted some code from
'TF Segmented Linear Regression' study
which it's from TradingView alexgrover user.
I have reused and adapted some code from
"Poor man's volume profile" study
which it's from TradingView IldarAkhmetgaleev user.
FEEDBACK
Please check the strategy source code for more detailed information
where, among others, I explain all of the substrats
and if they are implemented or not.
Q1. Did I understand wrong any of the Jaime substrats (which I have implemented)?
Q2. The strategy yields quite profit when we should long (EMA10 from 1d timeframe is higher than EMA55 from 1d timeframe.
Why the strategy yields much less profit when we should short (EMA10 from 1d timeframe is lower than EMA55 from 1d timeframe)?
Any idea if you need to do something else rather than just reverse what Jaime does when longing?
FREQUENTLY ASKED QUESTIONS
FAQ1. Why are you giving this strategy for free?
TradingLatino and his fellow enthusiasts taught me this strategy. Now I'm giving back to them.
FAQ2. Seriously! Why are you giving this strategy for free?
I'm confident his strategy might be improved a lot. By keeping it to myself I would avoid other people contributions to improve it.
Now that everyone can contribute this is a win-win.
FAQ3. How can I connect this strategy to my Exchange account?
It seems that you can attach alerts to strategies.
You might want to combine it with a paying account which enable Webhook URLs to work.
I don't know how all of this works right now so I cannot give you advice on it.
You will have to do your own research on this subject. But, be careful. Automating trades, if not done properly,
might end on you automating losses.
FAQ4. I have just found that this strategy by default gives more than 3.97% of 'maximum series of losses'. That's unacceptable according to my risk management policy.
You might want to reduce default stop loss setting from 7% to something like 5% till you are ok with the 'maximum series of losses'.
FAQ5. Where can I learn more about your work on this strategy?
Check the source code. You might find unused strategies. Either because there's not a substantial increases on earnings. Or maybe because they have not been implemented yet.
FAQ6. How much leverage is applied in this strategy?
No leverage.
FAQ7. Any difference with original Jaime Merino strategy?
Most of the times Jaime defines an stop loss at the price entry. That's not the case here. The default stop loss is 7% (but, don't be confused it only means losing 1% of your investment thanks to risk management). There's also a trailing take profit that triggers at 2% profit with a 1% trailing.
FAQ8. Why this strategy return is so small?
The strategy should be improved a lot. And, well, backtesting in this platform is not guaranteed to return theoric results comparable to real-life returns. That's why I'm personally forward testing this strategy to verify it.
MENSAJE EN CASTELLANO
En primer lugar se agradece feedback para mejorar la estrategia.
Si eres un usuario avanzado y quieres colaborar en mejorar el script no dudes en comentar abajo.
Ten en cuenta que aunque toda esta descripción tenga que estar en inglés no es obligatorio que el comentario esté en inglés.
CHISTE - CASTELLANO
¡Pero Jaime!
¡400.000!
¡Tu da mun!
HFT Divergence Hunter BacktesterDefault Settings are meant to be used in BTC /USDT chart on 5 min time frame on Binance Futures . If you want to use for another asset on another time frame YOU MUST CHANGE THE SETTINGS
This is a divergence finding strategy developed by HFT Research. It is a highly customizable strategy and provides endless opportunities to find profitable trades in the market.
Default Settings are meant to be used in BTC /USDT chart on 5 min time frame on Binance Futures . If you want to use for another asset on another time frame YOU MUST CHANGE THE SETTINGS
This is a divergence finding indicator developed by HFT Research. It is a highly customizable indicator and provides endless opportunities to find profitable trades in the market.
Use Envelope , this is the main decision maker in this strategy. The idea behind is that you choose the length of the moving average and set an offset % to create an upper and lower band. If you click on “display envelope” you will be able to visually see the band you have created. This way, you get to scalp the market as the price is diverging and moving away from the moving average. As the famous saying goes, moving averages act like magnets and prices always visits them back. Using this ideology, we aim to capitilize on the price swings that move away from the chosen moving average by x%.
STARC Bands ;
These are two bands that are applied above and below a simple moving average of an asset’s price. The upper band is created by adding the value of the average true range (ATR) or a multiple of i. The lower band is created by subtracting the value of the ATR from the SMA . The channel can provide traders with ideas on when to buy or sell. During an overall uptrend, buying near the lower band and selling near the top band is favorable. However, from our testing results it does fairly poorly in crypto markets while it does pretty well in traditional markets.
Use RSI ;
One of the most commonly used indicators in the trading world. The idea is simple, buy when its oversold and sell when its overbought. You can use RSI as a secondary confirmation of the dips. It can be turned on and off.
Use MFI
MFI stands for Money Flow Index and it is an oscillator like RSI . However, it does track the price in a different fashion than RSI providing a reliable option. It uses the price and volume data for identifying overbought and oversold signals in an asset.
Use Fisher Transform
Even though, it has a funny name, Fisher is actually a very decent and reliable indicator. It converts the prices into a Gaussian normal distribution channel. Therefore, the indicator detects when the prices have moved to an extreme, based on recent price action.
Use VWAP
VWAP stands for volume weighted average price . It is an extremely useful indicator when trading intra-day. It does reset every trading session which is at 00:00 UTC . Instead of looking at x number of candles and providing an average price, it will take into consideration the volume that’s traded at a certain price and weigh it accordingly. It will NOT give entry signals but act as a filter. If the price is above VWAP will filter out the shorts and other way around for longs.
Use ADX
Average directional index is a powerful indicator when one is assessing the strength of a trend as well as measuring the volatility in the market. Unfortunately, the worst market condition for this strategy is sideways market. ADX becomes a useful tool since it can detect trend. If the volatility is low and there is no real price movement, ADX will pick that up and will not let you get in trades during a sideways market. It will allow you to enter trades only when the market is trending.
Use Super trend Filter
The indicator works well in a trending market but can give false signals when a market is trading in a range.
It uses the ATR ( average true range ) as part of its calculation which takes into account the volatility of the market. The ATR is adjusted using the multiplier setting which determines how sensitive the indicator is.
Use MA Filter
Lookback: It is an option to look back x number of candles to validate the price crossing. If the market is choppy and the price keeps crossing up and down the moving average you have chosen, it will generate a lot of “noisy” signals. This option allows you to confirm the cross by selecting how many candles the price needs to stay above or below the moving average. Setting it 0 will turn it off.
MA Filter Type: There is a selection of moving averages that is available on TradingView currently. You can choose from 14 different moving average types to detect the trend as accurate as possible.
Filter Length: You can select the length of your moving average. Most commonly used length being 50,100 and 200.
Filter Type: This is our propriety smoothing method in order to make the moving averages lag less and influence the way they are calculated slightly. Type 1 being the normal calculation and type 2 being the secret sauce .
Reverse MA Filter: This option allows you to use the moving average in reverse. For example, the strategy will go long when the price is above the moving average. However, if you use the reserve MA Filter, you will go short when the price is above the moving average. This method works best in sideways market where price usually retraces back to the moving average. So, in an anticipation of price reverting back to the moving average, it is a useful piece of option to use during sideway markets.
Use MACD Filter
MACD here will act as a filter rather than an entry signal generator. There are a few different ways to use this MACD filter. You can click on the Use MACD filter and it will use filter out the shorts generated in a bullish territory and longs generated in the bearish territory. It will greatly reduce the number of trades the strategy will trade because MACD is a lagging indicator. By the time MACD turns bullish or bearish , most of the other indicators will have already generated the signals. Therefore, resulting in less trades. You can use MACD filter as MA oscillator meaning that it will only look at the MA lines in MACD to filter out trades. Alternatively, you can use it with the histogram (Signal lines) meaning that it will only look at the histogram whether its below or above the zero line in order to filter out the trades.
TP (%)
Place your desired take profit percentage here. Default is 1.5%
Move SL At Entry x% Profit
This is when the strategy will move your SL to the entry point if the position reaches x% profit. It can also generate a signal which can be automated to adjust the SL on the exchange.
SL (%)
Place your desired stop loss percentage here. Default is 1%
The backtester assumes the following;
- 1000$ capital
- 0.06% commission based on binance
- 1% risk meaning 100% equity on cross leverage
- Backtest results are starting from 2020
If you want to get access to this indicator please DM me or visit our website.
Grid System With Fake MartingaleThe proposed strategy is based on a grid system with a money management that tries to replicate the effect of a martingale without having to double your position size after each loss, hence the name "fake martingale". Note that a balance using this strategy is still subject to exponential decay, the risk is not minimized, as such, it would be dangerous to use this strategy.
For more information on the martingale and grid systems see:
Strategy Settings
Point determines the "grid" size and should be adjusted accordingly to the scale of the security you are applying the strategy to. Higher value would require larger price movements in order to trigger a trade, generating fewer trades as a result.
The order size determines the number of contracts/shares to purchase.
The martingale multiplier determines the factor by which the position size is multiplied after a loss, using values higher to 2 will "squarify" your balance, while a value of 1 would use a constant position sizing.
Finally, the anti-martingale parameter determines whether the strategy uses a reverse martingale or not, if set to true then the position size is multiplied after each win.
How It Works
Let's illustrate how we replicate a martingale without doubling our exposure with a simple casino example. Imagine you are playing roulette, and that you are betting on colors (black/red), your payout is 1 to 1, in the case you win, you will have your initial stake back plus a profit equal to your initial stake.
If your strategy is to recover any previous losses, you can double your stake each time you lose, once you win you will get back the previous losses plus a profit equal to your original stake, this is the martingale system. So how can we win back previous losses without having to double our stake? We could do that by doubling the payout ratio after a loss, so after a loss, we must use a payout ratio of 2:1, if we lose once again we must use a payout of 4:1...etc, our payout ratio would be subject to exponential growth instead of our stake.
Of course, the payout ratio is fixed with casino games, but in trading, we can manipulate the position of our take profit in order to replicate such effect, this is what this strategy is doing. So after a loss, we place our take profit such that a win recover our losses back plus generate a profit.
Advantages
The advantage of this approach is that unlike the martingale we don't double our position size, which instead can remain constant, this is a huge advantage as a martingale will require a significant capital in order to tank a series of losses.
Disadvantages
The main disadvantage of this method is that the price might never reach our take profit after a long losing streak, our balance would remain in the red and we couldn't do anything about it except reset the strategy.
Frictional costs are still a disadvantage, as such, we would need to place our take profits in order to account for them, while this is still better than purchasing additional shares, it minimizes the chances of the price reaching the take profit.
Conclusions
An alternative money management system replicating the effect of a martingale as been presented, we can see that such a system is far from being perfect, and it would be foolish to use it, however, it stills offer a convenient alternative to less aggressive progressive position sizing systems.
I have been receiving some messages from users criticizing me for exposing the martingale money management system, and I understand why but I can't agree, talking about it allow me to warn users against it, the grid-martingale methodology is will create more harm than anything else, the reward is only one side of the story and should always be compared against the risk, so always take a look at all the statics in a backtest.
Thanks for reading!
Shout-Out
This post was made possible thanks to my patrons:
@Happymono, @AmariMars, @kkhaial, @Nugehe, @LucF, @Nosmok, @iflostio, @DankBeans, @ecletv, @Neverstorm, @alex.crown.jr, @uk503, @xkingshotss, @vsov, @jbelka, @yatrader2, @hughza, @ganh
Strategy - Uber STC - Schaff Trend Cycle [UTS]Backtesting of Uber STC - Schaff Trend Cycle
Backtest with focus win/loss profitability.
Formula: profitability = win / (win+loss)
Default equity 100k USD
Default 2% Risk per trade
Default currency USD
Define backtest interval precisely by month, year, day
LONG and SHORT positions
Visualize SL and TP on chart
ATR (len: 14, smooth: SMA)
ATR based Stop-Loss, if hit trade will be closed and considered as loss
ATR based Take-Profit, if hit trade will be closed and considered as win
On TP or SL hit the trade is closed and marked as win/loss
Trend reversal strategy "muxie2" with safety SL, about 2x PFThis is a modified version of my script muxie1.
The muxie1 is more profitable in backtesting but is more risky as the stop loss is only triggered when a reversal happens and orders 2x more in reverse direction.
The current script works the same but if loss is substancial and reaches the safety stop loss then the trade is closed.
This uses 2 EMA and Stop Loss and Take Profit,
The soft stops don't fire at the precise value but only when the trend reverses
it is actually good for 1D timeframe since 2019, it was however optimised for 1min but I am not able to share scripts for 1m.
Have equivalent code for quantum zone Ftx.
Note the stops are in dollars of btc price, so this makes sense for bitcoin only.
Strategy - Backtest Uber WAE - Waddah Attar Explosion [UTS]Backtest of WAE - Waddah Attar Explosion
Backtest with focus win/loss profitability.
Formula: profitability = win / (win+loss)
Default equity 100k USD
Default 2% Risk per trade
Default currency USD
Define backtest interval precisely by month, year, day
LONG and SHORT positions
Visualize SL and TP on chart
ATR (len: 14, smooth: SMA)
ATR based Stop-Loss, if hit trade will be closed and considered as loss
ATR based Take-Profit, if hit trade will be closed and considered as win
On TP or SL hit the trade is closed and marked as win/loss